home *** CD-ROM | disk | FTP | other *** search
/ WinCD Professional / WinCD Professional.iso / wcdp.ms_ / wcdp.ms
Text File  |  1993-01-26  |  7KB  |  261 lines

  1. '**************************************************************************
  2. '*                       WinCD Professional - BFM Software                *
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20. CONST CDGETNAMEORG      = 7500
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL DEST$        ''Default destination directory.
  26. GLOBAL OPTCUR$      ''Option selection from option dialog.
  27. GLOBAL CUSTNAME$        ''Customer Name
  28. GLOBAL CUSTCOMPANY$     ''Customer Company
  29. GLOBAL UPGRADE$     ''Upgrage Mode?
  30.  
  31. DECLARE SUB Install
  32. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  33. DECLARE FUNCTION Scramble (szName$) AS STRING
  34. DECLARE FUNCTION Unscramble (szName$) AS STRING
  35.  
  36.  
  37. INIT:
  38.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  39.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  40.  
  41.     SetBitmap CUIDLL$, LOGO
  42.     SetTitle "Setup WinCD Professional"
  43.  
  44.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  45.     IF szInf$ = "" THEN
  46.         szInf$ = GetSymbolValue("STF_CWDDIR") + "WCDP.INF"
  47.     END IF
  48.     ReadInfFile szInf$
  49.  
  50.     OPTCUR$ = "1"
  51.     DEST$ = GetWindowsDir() + "WCDP"
  52.  
  53.  
  54. WELCOME:
  55.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  56.     IF sz$ = "CONTINUE" THEN
  57.     UIPop 1
  58.     ELSE
  59.     GOSUB ASKQUIT
  60.     GOTO WELCOME
  61.     END IF
  62.  
  63.  
  64. GETPATH:
  65.     SetSymbolValue "EditTextIn", DEST$
  66.     SetSymbolValue "EditFocus", "END"
  67. GETPATHL1:
  68.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  69.     DEST$ = GetSymbolValue("EditTextOut")
  70.  
  71.     IF sz$ = "CONTINUE" THEN
  72.     IF IsDirWritable(DEST$) = 0 THEN
  73.         GOSUB BADPATH
  74.         GOTO GETPATHL1
  75.     END IF
  76.     UIPop 1
  77.     ELSEIF sz$ = "REACTIVATE" THEN
  78.     GOTO GETPATHL1
  79.     ELSE
  80.     GOSUB ASKQUIT
  81.     GOTO GETPATH
  82.     END IF
  83.  
  84.  
  85. UPGRADE:
  86.     UPGRADE$ = "N"
  87.     IF DoesDirExist(DEST$) = 1 THEN 
  88.         IF DoesFileExist(DEST$ + "\wcdp.ini", femExist) = 1 THEN
  89.             IF DoesIniKeyExist(DEST$ + "\wcdp.ini", "WinCDPro", "Install1") = 1 THEN
  90.                 UPGRADE$ = "Y"
  91.                 CUSTNAME$ = GetIniKeyString(DEST$ + "\wcdp.ini", "WinCDPro", "Install1")
  92.                 CUSTNAME$ = Unscramble(CUSTNAME$)
  93.                 SetSymbolValue "NameIn", CUSTNAME$
  94.                 CUSTCOMPANY$ = GetIniKeyString(DEST$ + "\wcdp.ini", "WinCDPro", "Install2")
  95.                 CUSTCOMPANY$ = Unscramble(CUSTCOMPANY$)
  96.                 SetSymbolValue "OrgIn", CUSTCOMPANY$
  97.             END IF
  98.         END IF
  99.     END IF
  100.  
  101.  
  102. GETNAME:
  103.     sz$ = UIStartDlg(CUIDLL$, CDGETNAMEORG, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  104.     CUSTNAME$ = GetSymbolValue("NameOut")
  105.     CUSTCOMPANY$ = GetSymbolValue("OrgOut")
  106.  
  107.     IF sz$ = "CONTINUE" THEN
  108.         IF (CUSTNAME$ = "") THEN
  109.             GOTO GETNAME
  110.         END IF
  111.         UIPop 1
  112.     ELSEIF sz$ = "REACTIVATE" THEN
  113.         GOTO GETNAME
  114.     ELSE
  115.     GOSUB ASKQUIT
  116.         GOTO GETNAME
  117.     END IF
  118.  
  119.  
  120.     Install
  121.  
  122.  
  123. QUIT:
  124.     ON ERROR GOTO ERRQUIT
  125.  
  126.     IF ERR = 0 THEN
  127.     dlg% = EXITSUCCESS
  128.     ELSEIF ERR = STFQUIT THEN
  129.     dlg% = EXITQUIT
  130.     ELSE
  131.     dlg% = EXITFAILURE
  132.     END IF
  133. QUITL1:
  134.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  135.     IF sz$ = "REACTIVATE" THEN
  136.     GOTO QUITL1
  137.     END IF
  138.     UIPop 1
  139.  
  140.     END
  141.  
  142. ERRQUIT:
  143.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  144.     END
  145.  
  146.  
  147.  
  148. BADPATH:
  149.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  150.     IF sz$ = "REACTIVATE" THEN
  151.     GOTO BADPATH
  152.     END IF
  153.     UIPop 1
  154.     RETURN
  155.  
  156.  
  157. ASKQUIT:
  158.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  159.  
  160.     IF sz$ = "EXIT" THEN
  161.     UIPopAll
  162.     ERROR STFQUIT
  163.     ELSEIF sz$ = "REACTIVATE" THEN
  164.     GOTO ASKQUIT
  165.     ELSE
  166.     UIPop 1
  167.     END IF
  168.     RETURN
  169.  
  170.  
  171.  
  172. '**
  173. '** Purpose:
  174. '**     Builds the copy list and performs all installation operations.
  175. '** Arguments:
  176. '**     none.
  177. '** Returns:
  178. '**     none.
  179. '*************************************************************************
  180. SUB Install STATIC
  181.  
  182.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  183.     CreateDir DEST$, cmoNone
  184.  
  185.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  186.     CopyFilesInCopyList
  187.  
  188.     ini$ = MakePath(DEST$, "WCDP.INI")
  189.     RemoveIniKey ini$, "WinCDPro", "Install1", cmoNone
  190.     RemoveIniKey ini$, "WinCDPro", "Install2", cmoNone
  191.     CreateIniKeyValue ini$, "WinCDPro", "Install1", Scramble(CUSTNAME$) , cmoNone
  192.     CreateIniKeyValue ini$, "WinCDPro", "Install2", Scramble(CUSTCOMPANY$) , cmoNone
  193.  
  194.     IF UPGRADE$ = "N" THEN
  195.         CreateIniKeyValue ini$, "WinCDPro", "NewDatabase", "1", cmoNone
  196.         CreateProgmanGroup "WinCDPro", "", cmoNone
  197.         ShowProgmanGroup  "WinCDPro", 1, cmoNone
  198.         CreateProgmanItem "WinCDPro", "WinCD Pro", MakePath(DEST$,"wcdp.exe"), "", cmoOverwrite
  199.         CreateProgmanItem "WinCDPro", "WinCD Pro Help", "winhelp " + MakePath(DEST$,"wcdp.hlp"), MakePath(DEST$,"wcdp.exe")+",1", cmoOverwrite
  200.     END IF
  201.  
  202. END SUB
  203.  
  204.  
  205.  
  206. '**
  207. '** Purpose:
  208. '**     Appends a file name to the end of a directory path,
  209. '**     inserting a backslash character as needed.
  210. '** Arguments:
  211. '**     szDir$  - full directory path (with optional ending "\")
  212. '**     szFile$ - filename to append to directory
  213. '** Returns:
  214. '**     Resulting fully qualified path name.
  215. '*************************************************************************
  216. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  217.     IF szDir$ = "" THEN
  218.     MakePath = szFile$
  219.     ELSEIF szFile$ = "" THEN
  220.     MakePath = szDir$
  221.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  222.     MakePath = szDir$ + szFile$
  223.     ELSE
  224.     MakePath = szDir$ + "\" + szFile$
  225.     END IF
  226. END FUNCTION
  227.  
  228.  
  229. '**
  230. '** Purpose:
  231. '**     Scrample name for ini file save.
  232. '** Arguments:
  233. '**     szName$  - name to be scrambled
  234. '** Returns:
  235. '**     scrambled name
  236. '*************************************************************************
  237. FUNCTION Scramble (szName$) STATIC AS STRING
  238.     Temp$ = ""
  239.     FOR C1=1 TO LEN(szName$)
  240.         Temp$ = Temp$ + chr$((ASC(MID$(szName$, C1, 1)) - 23) * 2)
  241.     NEXT C1
  242.     Scramble = Temp$
  243. END FUNCTION
  244.  
  245.  
  246. '**
  247. '** Purpose:
  248. '**     Unscrample name for ini file save.
  249. '** Arguments:
  250. '**     szName$  - name to be unscrambled
  251. '** Returns:
  252. '**     scrambled name
  253. '*************************************************************************
  254. FUNCTION Unscramble (szName$) STATIC AS STRING
  255.     Temp$ = ""
  256.     FOR C1=1 TO LEN(szName$)
  257.         Temp$ = Temp$ + chr$((ASC(MID$(szName$, C1, 1)) / 2) + 23)
  258.     NEXT C1
  259.     Unscramble = Temp$
  260. END FUNCTION
  261.